package com.my.dubbo.provider;

import java.io.IOException;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import com.my.dubbo.provider.service.ProviderService;
import com.my.dubbo.provider.service.impl.ProviderServiceImpl;

/**
 * Api方式启动
 * api的方式调用不需要其他的配置，只需要下面的代码即可。
 * 但是需要注意，官方建议：
 * Api方式用于测试用例使用，推荐xml的方式
 */
public class DubboConfigUseApi {

	public static void main(String[] args) throws IOException {
		//服务实现
		ProviderService providerService = new ProviderServiceImpl();
		
		//当前应用配置
		ApplicationConfig application = new ApplicationConfig();
		application.setName("provider");
		application.setOwner("ztq");
		application.setQosEnable(true);
		application.setQosPort(5555);
		
		//注册中心配置
		RegistryConfig registry = new RegistryConfig();
		registry.setAddress("zookeeper://10.25.174.21:2181");
		
		
		//服务提供者协议配置
		ProtocolConfig protocolConfig = new ProtocolConfig();
		protocolConfig.setName("dubbo");
		protocolConfig.setPort(20880);
		
		//服务提供者暴露服务
		ServiceConfig<ProviderService> service = new ServiceConfig<ProviderService>();
		service.setApplication(application);
		service.setRegistry(registry);
		service.setProtocol(protocolConfig);
		service.setInterface(ProviderService.class);
		service.setRef(providerService);
		//消费者要使用这个版本号
		service.setVersion("1.0.0");
		
		//暴漏及注册服务
		service.export();
		
		System.in.read();
	}

}
